/*******************************************************************************
 * Copyright (c) 2018, College of William & Mary
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the College of William & Mary nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COLLEGE OF WILLIAM & MARY BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * PRIMME: https://github.com/primme/primme
 * Contact: Andreas Stathopoulos, a n d r e a s _at_ c s . w m . e d u
 *******************************************************************************
 *   NOTE: THIS FILE IS AUTOMATICALLY GENERATED. PLEASE DON'T MODIFY
 ******************************************************************************/


#ifndef restart_H
#define restart_H
#if !defined(CHECK_TEMPLATE) && !defined(restart_Sprimme)
#  define restart_Sprimme CONCAT(restart_,WITH_KIND(SCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Rprimme)
#  define restart_Rprimme CONCAT(restart_,WITH_KIND(REAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SHprimme)
#  define restart_SHprimme CONCAT(restart_,WITH_KIND(HOST_SCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RHprimme)
#  define restart_RHprimme CONCAT(restart_,WITH_KIND(HOST_REAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SXprimme)
#  define restart_SXprimme CONCAT(restart_,WITH_KIND(XSCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RXprimme)
#  define restart_RXprimme CONCAT(restart_,WITH_KIND(XREAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Shprimme)
#  define restart_Shprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Rhprimme)
#  define restart_Rhprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Ssprimme)
#  define restart_Ssprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Rsprimme)
#  define restart_Rsprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Sdprimme)
#  define restart_Sdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Rdprimme)
#  define restart_Rdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Sqprimme)
#  define restart_Sqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_Rqprimme)
#  define restart_Rqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SXhprimme)
#  define restart_SXhprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RXhprimme)
#  define restart_RXhprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,h),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SXsprimme)
#  define restart_SXsprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RXsprimme)
#  define restart_RXsprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SXdprimme)
#  define restart_SXdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RXdprimme)
#  define restart_RXdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SXqprimme)
#  define restart_SXqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RXqprimme)
#  define restart_RXqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SHhprimme)
#  define restart_SHhprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RHhprimme)
#  define restart_RHhprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SHsprimme)
#  define restart_SHsprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RHsprimme)
#  define restart_RHsprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SHdprimme)
#  define restart_SHdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RHdprimme)
#  define restart_RHdprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_SHqprimme)
#  define restart_SHqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(restart_RHqprimme)
#  define restart_RHqprimme CONCAT(restart_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
#endif
int restart_dprimme(dummy_type_dprimme *V, dummy_type_dprimme *W, dummy_type_dprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_dprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_dprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_dprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *fVtBV, int ldfVtBV, dummy_type_dprimme *Q, PRIMME_INT ldQ, dummy_type_dprimme *R,
      int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU, dummy_type_dprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_soft_locking_Sprimme)
#  define restart_soft_locking_Sprimme CONCAT(restart_soft_locking_Sprimme,WITH_KIND(SCALAR_SUF))
#endif
int restart_soft_locking_Sprimmedprimme(int *restartSize, dummy_type_dprimme *V, dummy_type_dprimme *W,
      dummy_type_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_locking_Sprimme)
#  define restart_locking_Sprimme CONCAT(restart_locking_Sprimme,WITH_KIND(SCALAR_SUF))
#endif
int restart_locking_Sprimmedprimme(int *restartSize, dummy_type_dprimme *V, dummy_type_dprimme *W,
      dummy_type_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Sprimme)
#  define Num_aux_update_VWXR_Sprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(SCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Rprimme)
#  define Num_aux_update_VWXR_Rprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(REAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SHprimme)
#  define Num_aux_update_VWXR_SHprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(HOST_SCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RHprimme)
#  define Num_aux_update_VWXR_RHprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(HOST_REAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SXprimme)
#  define Num_aux_update_VWXR_SXprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(XSCALAR_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RXprimme)
#  define Num_aux_update_VWXR_RXprimme CONCAT(Num_aux_update_VWXR_,WITH_KIND(XREAL_SUF))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Shprimme)
#  define Num_aux_update_VWXR_Shprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Rhprimme)
#  define Num_aux_update_VWXR_Rhprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Ssprimme)
#  define Num_aux_update_VWXR_Ssprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Rsprimme)
#  define Num_aux_update_VWXR_Rsprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Sdprimme)
#  define Num_aux_update_VWXR_Sdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Rdprimme)
#  define Num_aux_update_VWXR_Rdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Sqprimme)
#  define Num_aux_update_VWXR_Sqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_Rqprimme)
#  define Num_aux_update_VWXR_Rqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SXhprimme)
#  define Num_aux_update_VWXR_SXhprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RXhprimme)
#  define Num_aux_update_VWXR_RXhprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,h),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SXsprimme)
#  define Num_aux_update_VWXR_SXsprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RXsprimme)
#  define Num_aux_update_VWXR_RXsprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SXdprimme)
#  define Num_aux_update_VWXR_SXdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RXdprimme)
#  define Num_aux_update_VWXR_RXdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SXqprimme)
#  define Num_aux_update_VWXR_SXqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RXqprimme)
#  define Num_aux_update_VWXR_RXqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SHhprimme)
#  define Num_aux_update_VWXR_SHhprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RHhprimme)
#  define Num_aux_update_VWXR_RHhprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SHsprimme)
#  define Num_aux_update_VWXR_SHsprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RHsprimme)
#  define Num_aux_update_VWXR_RHsprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SHdprimme)
#  define Num_aux_update_VWXR_SHdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RHdprimme)
#  define Num_aux_update_VWXR_RHdprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_SHqprimme)
#  define Num_aux_update_VWXR_SHqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_aux_update_VWXR_RHqprimme)
#  define Num_aux_update_VWXR_RHqprimme CONCAT(Num_aux_update_VWXR_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
#endif
int Num_aux_update_VWXR_dprimme(dummy_type_dprimme *V, dummy_type_dprimme *W, dummy_type_dprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_dprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_dprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_dprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_dprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_dprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_dprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_dprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_dprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_dprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_dprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_dprimme *H, int nH, int ldH,
   primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_projection_Sprimme)
#  define restart_projection_Sprimme CONCAT(restart_projection_Sprimme,WITH_KIND(SCALAR_SUF))
#endif
int restart_projection_Sprimmedprimme(dummy_type_dprimme *V, PRIMME_INT ldV, dummy_type_dprimme *W,
      PRIMME_INT ldW, dummy_type_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ,
      dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_dprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_dprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_dprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_RR)
#  define restart_RR CONCAT(restart_RR,WITH_KIND(SCALAR_SUF))
#endif
int restart_RRdprimme(dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_refined)
#  define restart_refined CONCAT(restart_refined,WITH_KIND(SCALAR_SUF))
#endif
int restart_refineddprimme(dummy_type_dprimme *V, PRIMME_INT ldV, dummy_type_dprimme *W, PRIMME_INT ldW,
      dummy_type_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtQ,
      int ldQtQ, dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(restart_harmonic)
#  define restart_harmonic CONCAT(restart_harmonic,WITH_KIND(SCALAR_SUF))
#endif
int restart_harmonicdprimme(dummy_type_dprimme *V, PRIMME_INT ldV, dummy_type_dprimme *W,
      PRIMME_INT ldW, dummy_type_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR,
      dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_dprimme *hU, int ldhU, int newldhU,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(ortho_coefficient_vectors_Sprimme)
#  define ortho_coefficient_vectors_Sprimme CONCAT(ortho_coefficient_vectors_Sprimme,WITH_KIND(SCALAR_SUF))
#endif
int ortho_coefficient_vectors_Sprimmedprimme(dummy_type_dprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(compute_residual_columns)
#  define compute_residual_columns CONCAT(compute_residual_columns,WITH_KIND(SCALAR_SUF))
#endif
int compute_residual_columnsdprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_dprimme *x,
      dummy_type_dprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_dprimme *Ax, PRIMME_INT ldAx,
      dummy_type_dprimme *xo, dummy_type_dprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_dprimme *ro,
      PRIMME_INT ldro, dummy_type_dprimme *xd, dummy_type_dprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_dprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_hprimme(dummy_type_hprimme *V, dummy_type_hprimme *W, dummy_type_hprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_hprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_hprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_hprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmehprimme(int *restartSize, dummy_type_hprimme *V, dummy_type_hprimme *W,
      dummy_type_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmehprimme(int *restartSize, dummy_type_hprimme *V, dummy_type_hprimme *W,
      dummy_type_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_hprimme(dummy_type_hprimme *V, dummy_type_hprimme *W, dummy_type_hprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_hprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_hprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_hprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_hprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_hprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_hprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_hprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_hprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmehprimme(dummy_type_hprimme *V, PRIMME_INT ldV, dummy_type_hprimme *W,
      PRIMME_INT ldW, dummy_type_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_hprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_hprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRhprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedhprimme(dummy_type_hprimme *V, PRIMME_INT ldV, dummy_type_hprimme *W, PRIMME_INT ldW,
      dummy_type_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_hprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonichprimme(dummy_type_hprimme *V, PRIMME_INT ldV, dummy_type_hprimme *W,
      PRIMME_INT ldW, dummy_type_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmehprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnshprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_hprimme *x,
      dummy_type_hprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_hprimme *Ax, PRIMME_INT ldAx,
      dummy_type_hprimme *xo, dummy_type_hprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_hprimme *ro,
      PRIMME_INT ldro, dummy_type_hprimme *xd, dummy_type_hprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_hprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_kprimme_normal(dummy_type_kprimme *V, dummy_type_kprimme *W, dummy_type_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmekprimme_normal(int *restartSize, dummy_type_kprimme *V, dummy_type_kprimme *W,
      dummy_type_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmekprimme_normal(int *restartSize, dummy_type_kprimme *V, dummy_type_kprimme *W,
      dummy_type_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_kprimme_normal(dummy_type_kprimme *V, dummy_type_kprimme *W, dummy_type_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmekprimme_normal(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W,
      PRIMME_INT ldW, dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRkprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedkprimme_normal(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W, PRIMME_INT ldW,
      dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonickprimme_normal(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W,
      PRIMME_INT ldW, dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmekprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnskprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_kprimme *x,
      dummy_type_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_kprimme *xo, dummy_type_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_kprimme *ro,
      PRIMME_INT ldro, dummy_type_kprimme *xd, dummy_type_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_kprimme(dummy_type_kprimme *V, dummy_type_kprimme *W, dummy_type_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmekprimme(int *restartSize, dummy_type_kprimme *V, dummy_type_kprimme *W,
      dummy_type_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmekprimme(int *restartSize, dummy_type_kprimme *V, dummy_type_kprimme *W,
      dummy_type_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_kprimme(dummy_type_kprimme *V, dummy_type_kprimme *W, dummy_type_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmekprimme(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W,
      PRIMME_INT ldW, dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRkprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedkprimme(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W, PRIMME_INT ldW,
      dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonickprimme(dummy_type_kprimme *V, PRIMME_INT ldV, dummy_type_kprimme *W,
      PRIMME_INT ldW, dummy_type_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmekprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnskprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_kprimme *x,
      dummy_type_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_kprimme *xo, dummy_type_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_kprimme *ro,
      PRIMME_INT ldro, dummy_type_kprimme *xd, dummy_type_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_sprimme(dummy_type_sprimme *V, dummy_type_sprimme *W, dummy_type_sprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_sprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_sprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_sprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmesprimme(int *restartSize, dummy_type_sprimme *V, dummy_type_sprimme *W,
      dummy_type_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmesprimme(int *restartSize, dummy_type_sprimme *V, dummy_type_sprimme *W,
      dummy_type_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_sprimme(dummy_type_sprimme *V, dummy_type_sprimme *W, dummy_type_sprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_sprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_sprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_sprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_sprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_sprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_sprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_sprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_sprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmesprimme(dummy_type_sprimme *V, PRIMME_INT ldV, dummy_type_sprimme *W,
      PRIMME_INT ldW, dummy_type_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_sprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRsprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedsprimme(dummy_type_sprimme *V, PRIMME_INT ldV, dummy_type_sprimme *W, PRIMME_INT ldW,
      dummy_type_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicsprimme(dummy_type_sprimme *V, PRIMME_INT ldV, dummy_type_sprimme *W,
      PRIMME_INT ldW, dummy_type_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmesprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnssprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_sprimme *x,
      dummy_type_sprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_sprimme *Ax, PRIMME_INT ldAx,
      dummy_type_sprimme *xo, dummy_type_sprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_sprimme *ro,
      PRIMME_INT ldro, dummy_type_sprimme *xd, dummy_type_sprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_sprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cprimme_normal(dummy_type_cprimme *V, dummy_type_cprimme *W, dummy_type_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecprimme_normal(int *restartSize, dummy_type_cprimme *V, dummy_type_cprimme *W,
      dummy_type_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecprimme_normal(int *restartSize, dummy_type_cprimme *V, dummy_type_cprimme *W,
      dummy_type_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cprimme_normal(dummy_type_cprimme *V, dummy_type_cprimme *W, dummy_type_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecprimme_normal(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W,
      PRIMME_INT ldW, dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcprimme_normal(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W, PRIMME_INT ldW,
      dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccprimme_normal(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W,
      PRIMME_INT ldW, dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_cprimme *x,
      dummy_type_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cprimme *xo, dummy_type_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cprimme *ro,
      PRIMME_INT ldro, dummy_type_cprimme *xd, dummy_type_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cprimme(dummy_type_cprimme *V, dummy_type_cprimme *W, dummy_type_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecprimme(int *restartSize, dummy_type_cprimme *V, dummy_type_cprimme *W,
      dummy_type_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecprimme(int *restartSize, dummy_type_cprimme *V, dummy_type_cprimme *W,
      dummy_type_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cprimme(dummy_type_cprimme *V, dummy_type_cprimme *W, dummy_type_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecprimme(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W,
      PRIMME_INT ldW, dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcprimme(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W, PRIMME_INT ldW,
      dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccprimme(dummy_type_cprimme *V, PRIMME_INT ldV, dummy_type_cprimme *W,
      PRIMME_INT ldW, dummy_type_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_cprimme *x,
      dummy_type_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cprimme *xo, dummy_type_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cprimme *ro,
      PRIMME_INT ldro, dummy_type_cprimme *xd, dummy_type_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_zprimme_normal(dummy_type_zprimme *V, dummy_type_zprimme *W, dummy_type_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_zprimme *evals, dummy_type_dprimme *resNorms, dummy_type_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_zprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmezprimme_normal(int *restartSize, dummy_type_zprimme *V, dummy_type_zprimme *W,
      dummy_type_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmezprimme_normal(int *restartSize, dummy_type_zprimme *V, dummy_type_zprimme *W,
      dummy_type_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_zprimme_normal(dummy_type_zprimme *V, dummy_type_zprimme *W, dummy_type_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_zprimme *hVals,
   dummy_type_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmezprimme_normal(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W,
      PRIMME_INT ldW, dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRzprimme_normal(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedzprimme_normal(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W, PRIMME_INT ldW,
      dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniczprimme_normal(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W,
      PRIMME_INT ldW, dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmezprimme_normal(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnszprimme_normal(PRIMME_INT m, dummy_type_zprimme *evals, dummy_type_zprimme *x,
      dummy_type_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_zprimme *xo, dummy_type_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_zprimme *ro,
      PRIMME_INT ldro, dummy_type_zprimme *xd, dummy_type_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_zprimme(dummy_type_zprimme *V, dummy_type_zprimme *W, dummy_type_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmezprimme(int *restartSize, dummy_type_zprimme *V, dummy_type_zprimme *W,
      dummy_type_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmezprimme(int *restartSize, dummy_type_zprimme *V, dummy_type_zprimme *W,
      dummy_type_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_zprimme(dummy_type_zprimme *V, dummy_type_zprimme *W, dummy_type_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmezprimme(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W,
      PRIMME_INT ldW, dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRzprimme(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedzprimme(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W, PRIMME_INT ldW,
      dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniczprimme(dummy_type_zprimme *V, PRIMME_INT ldV, dummy_type_zprimme *W,
      PRIMME_INT ldW, dummy_type_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmezprimme(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnszprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_zprimme *x,
      dummy_type_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_zprimme *xo, dummy_type_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_zprimme *ro,
      PRIMME_INT ldro, dummy_type_zprimme *xd, dummy_type_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_hprimme(dummy_type_magma_hprimme *V, dummy_type_magma_hprimme *W, dummy_type_magma_hprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_hprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_hprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_magma_hprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_hprimme(int *restartSize, dummy_type_magma_hprimme *V, dummy_type_magma_hprimme *W,
      dummy_type_magma_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_hprimme(int *restartSize, dummy_type_magma_hprimme *V, dummy_type_magma_hprimme *W,
      dummy_type_magma_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_hprimme(dummy_type_magma_hprimme *V, dummy_type_magma_hprimme *W, dummy_type_magma_hprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_magma_hprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_hprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_hprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_hprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_hprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_hprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_hprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_hprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_hprimme(dummy_type_magma_hprimme *V, PRIMME_INT ldV, dummy_type_magma_hprimme *W,
      PRIMME_INT ldW, dummy_type_magma_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_magma_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_hprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_hprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_hprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_hprimme(dummy_type_magma_hprimme *V, PRIMME_INT ldV, dummy_type_magma_hprimme *W, PRIMME_INT ldW,
      dummy_type_magma_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_magma_hprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_hprimme(dummy_type_magma_hprimme *V, PRIMME_INT ldV, dummy_type_magma_hprimme *W,
      PRIMME_INT ldW, dummy_type_magma_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_magma_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_hprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_hprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_magma_hprimme *x,
      dummy_type_magma_hprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_hprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_hprimme *xo, dummy_type_magma_hprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_hprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_hprimme *xd, dummy_type_magma_hprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_hprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_kprimme_normal(dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W, dummy_type_magma_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_kprimme_normal(int *restartSize, dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W,
      dummy_type_magma_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_kprimme_normal(int *restartSize, dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W,
      dummy_type_magma_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_kprimme_normal(dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W, dummy_type_magma_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_magma_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_kprimme_normal(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W,
      PRIMME_INT ldW, dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_kprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_kprimme_normal(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W, PRIMME_INT ldW,
      dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_magma_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_kprimme_normal(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W,
      PRIMME_INT ldW, dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_kprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_kprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_magma_kprimme *x,
      dummy_type_magma_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_kprimme *xo, dummy_type_magma_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_kprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_kprimme *xd, dummy_type_magma_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_kprimme(dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W, dummy_type_magma_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_kprimme(int *restartSize, dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W,
      dummy_type_magma_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_kprimme(int *restartSize, dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W,
      dummy_type_magma_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_kprimme(dummy_type_magma_kprimme *V, dummy_type_magma_kprimme *W, dummy_type_magma_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_magma_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_kprimme(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W,
      PRIMME_INT ldW, dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_kprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_kprimme(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W, PRIMME_INT ldW,
      dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_magma_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_kprimme(dummy_type_magma_kprimme *V, PRIMME_INT ldV, dummy_type_magma_kprimme *W,
      PRIMME_INT ldW, dummy_type_magma_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_magma_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_kprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_kprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_magma_kprimme *x,
      dummy_type_magma_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_kprimme *xo, dummy_type_magma_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_kprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_kprimme *xd, dummy_type_magma_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_sprimme(dummy_type_magma_sprimme *V, dummy_type_magma_sprimme *W, dummy_type_magma_sprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_sprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_sprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_magma_sprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_sprimme(int *restartSize, dummy_type_magma_sprimme *V, dummy_type_magma_sprimme *W,
      dummy_type_magma_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_sprimme(int *restartSize, dummy_type_magma_sprimme *V, dummy_type_magma_sprimme *W,
      dummy_type_magma_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_sprimme(dummy_type_magma_sprimme *V, dummy_type_magma_sprimme *W, dummy_type_magma_sprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_magma_sprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_sprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_sprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_sprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_sprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_sprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_sprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_sprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_sprimme(dummy_type_magma_sprimme *V, PRIMME_INT ldV, dummy_type_magma_sprimme *W,
      PRIMME_INT ldW, dummy_type_magma_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_magma_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_sprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_sprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_sprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_sprimme(dummy_type_magma_sprimme *V, PRIMME_INT ldV, dummy_type_magma_sprimme *W, PRIMME_INT ldW,
      dummy_type_magma_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_magma_sprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_sprimme(dummy_type_magma_sprimme *V, PRIMME_INT ldV, dummy_type_magma_sprimme *W,
      PRIMME_INT ldW, dummy_type_magma_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_magma_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_sprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_sprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_magma_sprimme *x,
      dummy_type_magma_sprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_sprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_sprimme *xo, dummy_type_magma_sprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_sprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_sprimme *xd, dummy_type_magma_sprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_sprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_cprimme_normal(dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W, dummy_type_magma_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_cprimme_normal(int *restartSize, dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W,
      dummy_type_magma_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_cprimme_normal(int *restartSize, dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W,
      dummy_type_magma_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_cprimme_normal(dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W, dummy_type_magma_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_magma_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_cprimme_normal(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W,
      PRIMME_INT ldW, dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_cprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_cprimme_normal(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W, PRIMME_INT ldW,
      dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_magma_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_cprimme_normal(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W,
      PRIMME_INT ldW, dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_cprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_cprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_magma_cprimme *x,
      dummy_type_magma_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_cprimme *xo, dummy_type_magma_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_cprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_cprimme *xd, dummy_type_magma_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_cprimme(dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W, dummy_type_magma_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_magma_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_cprimme(int *restartSize, dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W,
      dummy_type_magma_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_cprimme(int *restartSize, dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W,
      dummy_type_magma_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_magma_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_cprimme(dummy_type_magma_cprimme *V, dummy_type_magma_cprimme *W, dummy_type_magma_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_magma_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_magma_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_cprimme(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W,
      PRIMME_INT ldW, dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_cprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_cprimme(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W, PRIMME_INT ldW,
      dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_magma_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_cprimme(dummy_type_magma_cprimme *V, PRIMME_INT ldV, dummy_type_magma_cprimme *W,
      PRIMME_INT ldW, dummy_type_magma_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_magma_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_cprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_cprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_magma_cprimme *x,
      dummy_type_magma_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_cprimme *xo, dummy_type_magma_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_cprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_cprimme *xd, dummy_type_magma_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_dprimme(dummy_type_magma_dprimme *V, dummy_type_magma_dprimme *W, dummy_type_magma_dprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_dprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_magma_dprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_dprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *fVtBV, int ldfVtBV, dummy_type_magma_dprimme *Q, PRIMME_INT ldQ, dummy_type_dprimme *R,
      int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU, dummy_type_dprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_dprimme(int *restartSize, dummy_type_magma_dprimme *V, dummy_type_magma_dprimme *W,
      dummy_type_magma_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_dprimme(int *restartSize, dummy_type_magma_dprimme *V, dummy_type_magma_dprimme *W,
      dummy_type_magma_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_dprimme(dummy_type_magma_dprimme *V, dummy_type_magma_dprimme *W, dummy_type_magma_dprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_dprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_magma_dprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_dprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_dprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_dprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_dprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_magma_dprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_dprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_dprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_dprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_dprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_dprimme(dummy_type_magma_dprimme *V, PRIMME_INT ldV, dummy_type_magma_dprimme *W,
      PRIMME_INT ldW, dummy_type_magma_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_magma_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ,
      dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_dprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_dprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_dprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_dprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_dprimme(dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_dprimme(dummy_type_magma_dprimme *V, PRIMME_INT ldV, dummy_type_magma_dprimme *W, PRIMME_INT ldW,
      dummy_type_magma_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH, dummy_type_magma_dprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtQ,
      int ldQtQ, dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_dprimme(dummy_type_magma_dprimme *V, PRIMME_INT ldV, dummy_type_magma_dprimme *W,
      PRIMME_INT ldW, dummy_type_magma_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_magma_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR,
      dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_dprimme *hU, int ldhU, int newldhU,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_dprimme(dummy_type_dprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_dprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_magma_dprimme *x,
      dummy_type_magma_dprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_dprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_dprimme *xo, dummy_type_magma_dprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_dprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_dprimme *xd, dummy_type_magma_dprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_dprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_zprimme_normal(dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W, dummy_type_magma_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_zprimme *evals, dummy_type_dprimme *resNorms, dummy_type_magma_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_zprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_zprimme_normal(int *restartSize, dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W,
      dummy_type_magma_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_zprimme_normal(int *restartSize, dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W,
      dummy_type_magma_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_zprimme_normal(dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W, dummy_type_magma_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_zprimme *hVals,
   dummy_type_magma_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_magma_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_zprimme_normal(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W,
      PRIMME_INT ldW, dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_zprimme_normal(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_zprimme_normal(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W, PRIMME_INT ldW,
      dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_magma_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_zprimme_normal(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W,
      PRIMME_INT ldW, dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_zprimme_normal(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_zprimme_normal(PRIMME_INT m, dummy_type_zprimme *evals, dummy_type_magma_zprimme *x,
      dummy_type_magma_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_zprimme *xo, dummy_type_magma_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_zprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_zprimme *xd, dummy_type_magma_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_magma_zprimme(dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W, dummy_type_magma_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_magma_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmemagma_zprimme(int *restartSize, dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W,
      dummy_type_magma_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmemagma_zprimme(int *restartSize, dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W,
      dummy_type_magma_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_magma_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_magma_zprimme(dummy_type_magma_zprimme *V, dummy_type_magma_zprimme *W, dummy_type_magma_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_magma_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_magma_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_magma_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_magma_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_magma_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_magma_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_magma_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_magma_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmemagma_zprimme(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W,
      PRIMME_INT ldW, dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_magma_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_magma_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_magma_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRmagma_zprimme(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedmagma_zprimme(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W, PRIMME_INT ldW,
      dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_magma_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmonicmagma_zprimme(dummy_type_magma_zprimme *V, PRIMME_INT ldV, dummy_type_magma_zprimme *W,
      PRIMME_INT ldW, dummy_type_magma_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_magma_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmemagma_zprimme(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnsmagma_zprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_magma_zprimme *x,
      dummy_type_magma_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_magma_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_magma_zprimme *xo, dummy_type_magma_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_magma_zprimme *ro,
      PRIMME_INT ldro, dummy_type_magma_zprimme *xd, dummy_type_magma_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_magma_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_hprimme(dummy_type_cublas_hprimme *V, dummy_type_cublas_hprimme *W, dummy_type_cublas_hprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_hprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_hprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_cublas_hprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_hprimme(int *restartSize, dummy_type_cublas_hprimme *V, dummy_type_cublas_hprimme *W,
      dummy_type_cublas_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_hprimme(int *restartSize, dummy_type_cublas_hprimme *V, dummy_type_cublas_hprimme *W,
      dummy_type_cublas_hprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_hprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_hprimme(dummy_type_cublas_hprimme *V, dummy_type_cublas_hprimme *W, dummy_type_cublas_hprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_cublas_hprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_hprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_hprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_hprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_hprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_hprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_hprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_hprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_hprimme(dummy_type_cublas_hprimme *V, PRIMME_INT ldV, dummy_type_cublas_hprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_cublas_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_hprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_hprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_hprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_hprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_hprimme(dummy_type_cublas_hprimme *V, PRIMME_INT ldV, dummy_type_cublas_hprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_cublas_hprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_hprimme(dummy_type_cublas_hprimme *V, PRIMME_INT ldV, dummy_type_cublas_hprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_hprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_cublas_hprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_hprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_hprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_cublas_hprimme *x,
      dummy_type_cublas_hprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_hprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_hprimme *xo, dummy_type_cublas_hprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_hprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_hprimme *xd, dummy_type_cublas_hprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_hprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_kprimme_normal(dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W, dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_kprimme_normal(int *restartSize, dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W,
      dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_kprimme_normal(int *restartSize, dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W,
      dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_kprimme_normal(dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W, dummy_type_cublas_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_cublas_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_kprimme_normal(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_kprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_kprimme_normal(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cublas_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_kprimme_normal(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_kprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_kprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_cublas_kprimme *x,
      dummy_type_cublas_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_kprimme *xo, dummy_type_cublas_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_kprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_kprimme *xd, dummy_type_cublas_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_kprimme(dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W, dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_kprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_kprimme(int *restartSize, dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W,
      dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_kprimme(int *restartSize, dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W,
      dummy_type_cublas_kprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_kprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_kprimme(dummy_type_cublas_kprimme *V, dummy_type_cublas_kprimme *W, dummy_type_cublas_kprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_cublas_kprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_kprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_kprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_kprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_kprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_kprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_kprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_kprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_kprimme(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_kprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_kprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_kprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_kprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_kprimme(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cublas_kprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_kprimme(dummy_type_cublas_kprimme *V, PRIMME_INT ldV, dummy_type_cublas_kprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_kprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cublas_kprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_kprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_kprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_cublas_kprimme *x,
      dummy_type_cublas_kprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_kprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_kprimme *xo, dummy_type_cublas_kprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_kprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_kprimme *xd, dummy_type_cublas_kprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_kprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_sprimme(dummy_type_cublas_sprimme *V, dummy_type_cublas_sprimme *W, dummy_type_cublas_sprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_sprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_sprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_sprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *fVtBV, int ldfVtBV, dummy_type_cublas_sprimme *Q, PRIMME_INT ldQ, dummy_type_sprimme *R,
      int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU, dummy_type_sprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_sprimme(int *restartSize, dummy_type_cublas_sprimme *V, dummy_type_cublas_sprimme *W,
      dummy_type_cublas_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_sprimme(int *restartSize, dummy_type_cublas_sprimme *V, dummy_type_cublas_sprimme *W,
      dummy_type_cublas_sprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_sprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_sprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_sprimme(dummy_type_cublas_sprimme *V, dummy_type_cublas_sprimme *W, dummy_type_cublas_sprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_sprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_cublas_sprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_sprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_sprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_sprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_sprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_sprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_sprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_sprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_sprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_sprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_sprimme(dummy_type_cublas_sprimme *V, PRIMME_INT ldV, dummy_type_cublas_sprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_cublas_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ,
      dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_sprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_sprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_sprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_sprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_sprimme *M, int ldM, dummy_type_sprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_sprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_sprimme(dummy_type_sprimme *H, int ldH, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_sprimme(dummy_type_cublas_sprimme *V, PRIMME_INT ldV, dummy_type_cublas_sprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH, dummy_type_cublas_sprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR, dummy_type_sprimme *QtQ,
      int ldQtQ, dummy_type_sprimme *fQtQ, int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_sprimme(dummy_type_cublas_sprimme *V, PRIMME_INT ldV, dummy_type_cublas_sprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_sprimme *BV, PRIMME_INT ldBV, dummy_type_sprimme *H, int ldH,
      dummy_type_cublas_sprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_sprimme *R, int ldR,
      dummy_type_sprimme *QtV, int ldQtV, dummy_type_sprimme *QtQ, int ldQtQ, dummy_type_sprimme *fQtQ,
      int ldfQtQ, dummy_type_sprimme *VtBV, int ldVtBV, dummy_type_sprimme *hU, int ldhU, int newldhU,
      dummy_type_sprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_sprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_sprimme(dummy_type_sprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_sprimme *VtBV, int ldVtBV,
      dummy_type_sprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_sprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_cublas_sprimme *x,
      dummy_type_cublas_sprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_sprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_sprimme *xo, dummy_type_cublas_sprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_sprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_sprimme *xd, dummy_type_cublas_sprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_sprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_cprimme_normal(dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W, dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_cprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_cprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_cprimme_normal(int *restartSize, dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W,
      dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_cprimme_normal(int *restartSize, dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W,
      dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_cprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_cprimme_normal(dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W, dummy_type_cublas_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_cprimme *hVals,
   dummy_type_cublas_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_cprimme_normal(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_cprimme_normal(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_cprimme_normal(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cublas_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_cprimme_normal(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_cprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_cprimme_normal(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_cprimme_normal(PRIMME_INT m, dummy_type_cprimme *evals, dummy_type_cublas_cprimme *x,
      dummy_type_cublas_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_cprimme *xo, dummy_type_cublas_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_cprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_cprimme *xd, dummy_type_cublas_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_cprimme(dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W, dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_sprimme *evals, dummy_type_sprimme *resNorms, dummy_type_cublas_cprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_cprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_sprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *fVtBV, int ldfVtBV, dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, dummy_type_cprimme *R,
      int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU, dummy_type_cprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_cprimme(int *restartSize, dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W,
      dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      dummy_type_sprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_cprimme(int *restartSize, dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W,
      dummy_type_cublas_cprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_cprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_sprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_sprimme *blockNorms, dummy_type_cublas_cprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_sprimme *evals,
      int *numConverged, int *numLocked, dummy_type_sprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_cprimme(dummy_type_cublas_cprimme *V, dummy_type_cublas_cprimme *W, dummy_type_cublas_cprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_cprimme *h, int nh, int ldh, dummy_type_sprimme *hVals,
   dummy_type_cublas_cprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_cprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_cprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_cprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_cprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_sprimme *Rnorms,
   dummy_type_cublas_cprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_cprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_cprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_sprimme *rnorms, int nrb, int nre,
   dummy_type_cprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_cprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_cprimme(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ,
      dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_cprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_cprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_cprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_cprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_cprimme *M, int ldM, dummy_type_cprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_cprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_cprimme(dummy_type_cprimme *H, int ldH, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_cprimme(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH, dummy_type_cublas_cprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR, dummy_type_cprimme *QtQ,
      int ldQtQ, dummy_type_cprimme *fQtQ, int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_cprimme(dummy_type_cublas_cprimme *V, PRIMME_INT ldV, dummy_type_cublas_cprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_cprimme *BV, PRIMME_INT ldBV, dummy_type_cprimme *H, int ldH,
      dummy_type_cublas_cprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_cprimme *R, int ldR,
      dummy_type_cprimme *QtV, int ldQtV, dummy_type_cprimme *QtQ, int ldQtQ, dummy_type_cprimme *fQtQ,
      int ldfQtQ, dummy_type_cprimme *VtBV, int ldVtBV, dummy_type_cprimme *hU, int ldhU, int newldhU,
      dummy_type_cprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_sprimme *hVals, dummy_type_sprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_cprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_cprimme(dummy_type_cprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_cprimme *VtBV, int ldVtBV,
      dummy_type_cprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_cprimme(PRIMME_INT m, dummy_type_sprimme *evals, dummy_type_cublas_cprimme *x,
      dummy_type_cublas_cprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_cprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_cprimme *xo, dummy_type_cublas_cprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_cprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_cprimme *xd, dummy_type_cublas_cprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_cprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_dprimme(dummy_type_cublas_dprimme *V, dummy_type_cublas_dprimme *W, dummy_type_cublas_dprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_dprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_cublas_dprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_dprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *fVtBV, int ldfVtBV, dummy_type_cublas_dprimme *Q, PRIMME_INT ldQ, dummy_type_dprimme *R,
      int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU, dummy_type_dprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_dprimme(int *restartSize, dummy_type_cublas_dprimme *V, dummy_type_cublas_dprimme *W,
      dummy_type_cublas_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_dprimme(int *restartSize, dummy_type_cublas_dprimme *V, dummy_type_cublas_dprimme *W,
      dummy_type_cublas_dprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_dprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_dprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_dprimme(dummy_type_cublas_dprimme *V, dummy_type_cublas_dprimme *W, dummy_type_cublas_dprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_dprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_cublas_dprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_dprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_dprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_dprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_dprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_cublas_dprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_dprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_dprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_dprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_dprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_dprimme(dummy_type_cublas_dprimme *V, PRIMME_INT ldV, dummy_type_cublas_dprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_cublas_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ,
      dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_dprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_dprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_dprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_dprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_dprimme *M, int ldM, dummy_type_dprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_dprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_dprimme(dummy_type_dprimme *H, int ldH, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_dprimme(dummy_type_cublas_dprimme *V, PRIMME_INT ldV, dummy_type_cublas_dprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH, dummy_type_cublas_dprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR, dummy_type_dprimme *QtQ,
      int ldQtQ, dummy_type_dprimme *fQtQ, int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_dprimme(dummy_type_cublas_dprimme *V, PRIMME_INT ldV, dummy_type_cublas_dprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_dprimme *BV, PRIMME_INT ldBV, dummy_type_dprimme *H, int ldH,
      dummy_type_cublas_dprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_dprimme *R, int ldR,
      dummy_type_dprimme *QtV, int ldQtV, dummy_type_dprimme *QtQ, int ldQtQ, dummy_type_dprimme *fQtQ,
      int ldfQtQ, dummy_type_dprimme *VtBV, int ldVtBV, dummy_type_dprimme *hU, int ldhU, int newldhU,
      dummy_type_dprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_dprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_dprimme(dummy_type_dprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_dprimme *VtBV, int ldVtBV,
      dummy_type_dprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_dprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_cublas_dprimme *x,
      dummy_type_cublas_dprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_dprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_dprimme *xo, dummy_type_cublas_dprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_dprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_dprimme *xd, dummy_type_cublas_dprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_dprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_zprimme_normal(dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W, dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_zprimme *evals, dummy_type_dprimme *resNorms, dummy_type_cublas_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_zprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_zprimme_normal(int *restartSize, dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W,
      dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_zprimme_normal(int *restartSize, dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W,
      dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_zprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_zprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_zprimme_normal(dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W, dummy_type_cublas_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_zprimme *hVals,
   dummy_type_cublas_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_cublas_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_zprimme_normal(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_zprimme_normal(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_zprimme_normal(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_cublas_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_zprimme_normal(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_zprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_zprimme_normal(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_zprimme_normal(PRIMME_INT m, dummy_type_zprimme *evals, dummy_type_cublas_zprimme *x,
      dummy_type_cublas_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_zprimme *xo, dummy_type_cublas_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_zprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_zprimme *xd, dummy_type_cublas_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
int restart_cublas_zprimme(dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W, dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal,
      int basisSize, PRIMME_INT ldV, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, int *evecsPerm,
      dummy_type_dprimme *evals, dummy_type_dprimme *resNorms, dummy_type_cublas_zprimme *evecsHat, PRIMME_INT ldevecsHat,
      dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact, int *ipivot,
      int *numConverged, int *numLocked, int *lockedFlags,
      int *numConvergedStored, dummy_type_zprimme *prevhVecs, int nprevhVecs,
      int ldprevhVecs, int numGuesses, dummy_type_dprimme *prevRitzVals,
      int *numPrevRitzVals, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *fVtBV, int ldfVtBV, dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, dummy_type_zprimme *R,
      int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU, dummy_type_zprimme *hVecs,
      int ldhVecs, int newldhVecs, int *restartSizeOutput,
      int *targetShiftIndex, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, int *restartsSinceReset, double startTime,
      primme_context ctx);
int restart_soft_locking_Sprimmecublas_zprimme(int *restartSize, dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W,
      dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      dummy_type_dprimme *resNorms, int *numConverged, int numPrevRetained,
      int *indexOfPreviousVecs, int *hVecsPerm, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, primme_context ctx);
int restart_locking_Sprimmecublas_zprimme(int *restartSize, dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W,
      dummy_type_cublas_zprimme *BV, PRIMME_INT nLocal, int basisSize, PRIMME_INT ldV,
      dummy_type_zprimme *hVecs, int ldhVecs, int *restartPerm, dummy_type_dprimme *hVals, int *flags,
      int *iev, int *ievSize, dummy_type_dprimme *blockNorms, dummy_type_cublas_zprimme *evecs,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_dprimme *evals,
      int *numConverged, int *numLocked, dummy_type_dprimme *resNorms, int *lockedFlags,
      int *evecsperm, int numPrevRetained, int *indexOfPreviousVecs,
      int *hVecsPerm, dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      double startTime, primme_context ctx);
int Num_aux_update_VWXR_cublas_zprimme(dummy_type_cublas_zprimme *V, dummy_type_cublas_zprimme *W, dummy_type_cublas_zprimme *BV,
   PRIMME_INT mV, int nV, PRIMME_INT ldV,
   dummy_type_zprimme *h, int nh, int ldh, dummy_type_dprimme *hVals,
   dummy_type_cublas_zprimme *X0, int nX0b, int nX0e, PRIMME_INT ldX0,
   dummy_type_cublas_zprimme *X1, int nX1b, int nX1e, PRIMME_INT ldX1,
   dummy_type_cublas_zprimme *evecs, int evecsSize, int nX2b, int nX2e, PRIMME_INT ldevecs,
   dummy_type_cublas_zprimme *Wo, int nWob, int nWoe, PRIMME_INT ldWo,
   dummy_type_cublas_zprimme *R, int nRb, int nRe, PRIMME_INT ldR, dummy_type_dprimme *Rnorms,
   dummy_type_cublas_zprimme *BX0, int nBX0b, int nBX0e, PRIMME_INT ldBX0,
   dummy_type_cublas_zprimme *BX1, int nBX1b, int nBX1e, PRIMME_INT ldBX1,
   dummy_type_cublas_zprimme *Bevecs, int BevecsSize, int nBX2b, int nBX2e, PRIMME_INT ldBevecs,
   dummy_type_dprimme *rnorms, int nrb, int nre,
   dummy_type_zprimme *VtBV, int nVtBV, int ldVtBV,
   dummy_type_zprimme *H, int nH, int ldH,
   primme_context ctx);
int restart_projection_Sprimmecublas_zprimme(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal,
      dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ,
      dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *hU, int ldhU, int newldhU,
      int indexOfPreviousVecsBeforeRestart, dummy_type_zprimme *hVecs, int ldhVecs,
      int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals, int *restartPerm,
      int *hVecsPerm, int restartSize, int basisSize, int numPrevRetained,
      int indexOfPreviousVecs, dummy_type_cublas_zprimme *evecs, int *evecsSize,
      PRIMME_INT ldevecs, dummy_type_cublas_zprimme *Bevecs, PRIMME_INT ldBevecs, dummy_type_cublas_zprimme *evecsHat,
      PRIMME_INT ldevecsHat, dummy_type_zprimme *M, int ldM, dummy_type_zprimme *Mfact, int ldMfact,
      int *ipivot, int *targetShiftIndex, int numConverged,
      int *numArbitraryVecs, dummy_type_zprimme *hVecsRot, int ldhVecsRot,
      primme_context ctx);
int restart_RRcublas_zprimme(dummy_type_zprimme *H, int ldH, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, int restartSize,
      int basisSize, int numConverged, int numPrevRetained,
      int indexOfPreviousVecs, int *hVecsPerm, int *targetShiftIndex,
      primme_context ctx);
int restart_refinedcublas_zprimme(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W, PRIMME_INT ldW,
      dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH, dummy_type_cublas_zprimme *Q,
      PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR, dummy_type_zprimme *QtQ,
      int ldQtQ, dummy_type_zprimme *fQtQ, int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *hU, int ldhU, int newldhU, int indexOfPreviousVecsBeforeRestart,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int restart_harmoniccublas_zprimme(dummy_type_cublas_zprimme *V, PRIMME_INT ldV, dummy_type_cublas_zprimme *W,
      PRIMME_INT ldW, dummy_type_cublas_zprimme *BV, PRIMME_INT ldBV, dummy_type_zprimme *H, int ldH,
      dummy_type_cublas_zprimme *Q, PRIMME_INT ldQ, PRIMME_INT nLocal, dummy_type_zprimme *R, int ldR,
      dummy_type_zprimme *QtV, int ldQtV, dummy_type_zprimme *QtQ, int ldQtQ, dummy_type_zprimme *fQtQ,
      int ldfQtQ, dummy_type_zprimme *VtBV, int ldVtBV, dummy_type_zprimme *hU, int ldhU, int newldhU,
      dummy_type_zprimme *hVecs, int ldhVecs, int newldhVecs, dummy_type_dprimme *hVals, dummy_type_dprimme *hSVals,
      int *restartPerm, int *hVecsPerm, int restartSize, int basisSize,
      int numPrevRetained, int indexOfPreviousVecs, int *targetShiftIndex,
      int numConverged, int *numArbitraryVecs, dummy_type_zprimme *hVecsRot,
      int ldhVecsRot, primme_context ctx);
int ortho_coefficient_vectors_Sprimmecublas_zprimme(dummy_type_zprimme *hVecs, int basisSize,
      int ldhVecs, int indexOfPreviousVecs, dummy_type_zprimme *VtBV, int ldVtBV,
      dummy_type_zprimme *prevhVecs, int nprevhVecs, int ldprevhVecs, int *flags,
      int *numPrevRetained, primme_context ctx);
int compute_residual_columnscublas_zprimme(PRIMME_INT m, dummy_type_dprimme *evals, dummy_type_cublas_zprimme *x,
      dummy_type_cublas_zprimme *Bx, int n, int *p, PRIMME_INT ldx, dummy_type_cublas_zprimme *Ax, PRIMME_INT ldAx,
      dummy_type_cublas_zprimme *xo, dummy_type_cublas_zprimme *Bxo, int no, PRIMME_INT ldxo, int io0, dummy_type_cublas_zprimme *ro,
      PRIMME_INT ldro, dummy_type_cublas_zprimme *xd, dummy_type_cublas_zprimme *Bxd, int nd, int *pd,
      PRIMME_INT ldxd, dummy_type_cublas_zprimme *rd, PRIMME_INT ldrd, primme_context ctx);
#endif
